// // FlatBezelObjectCell.swift // Flat Bezel // // Created by Ruben Beltran del Rio on 2/8/23. // Copyright © 2023 BRNBW. All rights reserved. // /* import Foundation import Cocoa class FlatBezelObjectCell: QSObjectCell { let preferredImagePosition: NSControl.ImagePosition = .imageAbove override func draw(withFrame cellFrame: NSRect, in controlView: NSView!) { let isFirstResponder = controlView.window?.firstResponder == controlView && !controlView.isKind(of: NSTableView.self) let dropTarget = self.isHighlighted && self.highlightsBy.contains(NSCell.StyleMask.changeBackgroundCellMask) && !self.isBezeled var fillColor: NSColor = self.backgroundColor ?? .textBackgroundColor if (isFirstResponder) { fillColor = self.highlightColor() } if (dropTarget) { fillColor = NSColor(red: 0.77, green: 0.91, blue: 0.96, alpha: 1) } var strokeColor: NSColor = .clear fillColor.setFill() strokeColor.setStroke() let roundRect = NSBezierPath() roundRect.appendRoundedRect(cellFrame, xRadius: cellRadiusFactor(), yRadius: cellRadiusFactor()) roundRect.fill() self.drawInterior(withFrame: self.drawingRect(forBounds: cellFrame), in: controlView) } override func titleRect(forBounds rect: NSRect) -> NSRect { super.titleRect(forBounds: rect.offsetBy(dx: 0, dy: -4)) } override func drawText(for drawObject: QSObject!, withFrame cellFrame: NSRect, in controlView: NSView!) { if self.imagePosition == .imageOnly { return; } var abbrString: String? = nil if controlView.responds(to: #selector(QSSearchObjectView.matchedString)) { abbrString = (controlView as! QSSearchObjectView).matchedString() } var nameString: String? = drawObject.displayName() var hitMask: AutoreleasingUnsafeMutablePointer? = nil var ranker = drawObject.ranker() if let ranker, let abbrString { nameString = ranker.matchedString(forAbbreviation: abbrString, hitmask: hitMask, inContext: nil) } var rankedStringIsName = nameString == drawObject.displayName() if nameString == nil { nameString = drawObject.identifier() ?? "Unknown" } var useAlternateColor = false if let controlView = controlView as? NSTableView { useAlternateColor = controlView.isRowSelected(controlView.row(at: cellFrame.origin)) } var mainColor: NSColor? = textColor() if mainColor == nil { mainColor = useAlternateColor ? .alternateSelectedControlTextColor : .controlTextColor } var fadedColor = mainColor!.withAlphaComponent(0.50) var textDrawRect = titleRect(forBounds: cellFrame) var titleString = NSMutableAttributedString(string: nameString!) titleString.setAttributes(rankedStringIsName ? nameAttributes : detailAttributes, range: NSMakeRange(0, titleString.length)) if abbrString != nil && abbrString!.hasPrefix("QSActionMnemonic") { titleString.addAttribute(.foregroundColor, value: rankedStringIsName ? fadedColor : fadedColor.withAlphaComponent(0.8), range: NSMakeRange(0, titleString.length)) } else { var i = 0 var j = 0 var hits: [Int] = [] count = hitMask?. } } } NSUInteger i = 0; NSUInteger j = 0; NSUInteger hits[[titleString length]]; NSUInteger count = [hitMask getIndexes:(NSUInteger *)&hits maxCount:[titleString length] inIndexRange:nil]; NSDictionary *attributes = @{ NSForegroundColorAttributeName: rankedStringIsName ? mainColor : fadedColor }; for(i = 0; i